package prompt

const (
	RULE_PROMPT_GENERATE_TEMPLATE = `
Here is a task description for which I would like you to create a high-quality prompt template for:
--Data--
task description: {{.Task_description}}
------

Based on task description, please create a well-structured prompt template that another AI could use to consistently complete the task. The prompt template should include:
- The prompt template  should contain five parts: Role, Goal, Instructions and Example. All part shoud use same languae as task description content.
- The prompt template Instructions part shoud contains: Ensure the output uses the same language as the user's input content. 
- The Role section should clearly define the role of the AI assistant and the task it is expected to perform. The role section should start with "You are a skilled assistant tasked with ...".
- The Goal section should clearly define the objective of the task. The goal section should start with "Given ...".
- The Instructions section should provide step-by-step directions on how to complete the task. The instructions should be clear and concise, and should not contain any ambiguity.
- The Example section is a specific illustration of how the prompt template is used, consisting of two parts: input and output. The input part is a specific user input instance of a task description, the user input language is same as the task description content. The output part generates specific content based on the user's input and in accordance with the requirements of the Instructions.
- The Output section generates specific content based on the user's input and in accordance with the requirements of the Instructions.
- Descriptive variable names surrounded by {{"{{"}} {{"}}"}} (two curly brackets) to indicate where the actual values will be substituted in. Choose variable names that clearly indicate the type of value expected. Variable names have to be composed of number, english alphabets and underline and nothing else. The variable name should uppercase.The variable shoud not be shown in the Output and Example.
- Clear instructions for the AI that will be using this prompt. The instructions should provide step-by-step directions on how to complete the task using the input variables. 
- Relevant examples if needed to clarify the task further. Do not use curly brackets any other than in <instruction> section. 
- Any other relevant sections demarcated.
Please generate the full prompt template and output only the prompt template.

The Prompt Format as follows:
---Role---

You are a skilled assistant tasked with xxx.

---Goal---

---Instructions---

---Example-------
Example 1:
###user input####

###Output###

Example 2:
###input####

###Output###

`

	RULE_RAG_GENERATE_TEMPLATE = `
Here is a task description for which I would like you to create a high-quality prompt template for:
--Data--
task description: {{.Task_description}}
------

Based on task description, please create a well-structured prompt template that another AI could use to consistently complete the task. The prompt template should include:
- The prompt template  should contain five sections: Role, Goal, Instructions and Example. All part shoud use same languae as task description content.
- The prompt template Instructions section shoud contains: Ensure the output uses the same language as the user's input content. 
- The prompt template Instructions section shoud contains: If you don't know the answer, just say so. Do not make anything up. Do not include information where the supporting evidence for it is not provided. ...".
- The Role section should clearly define the role of the AI assistant and the task it is expected to perform. The Role section should start with "You are a helpful assistant responding to questions about data in the tables provided...".
- The Goal section should clearly define the objective of the task. The Goal section should start with "Generate a response of the target length and format that responds to the user's question, summarizing all information in the input data document appropriate for the response length and format, and incorporating any relevant general knowledge.
- The Instructions section should provide step-by-step directions on how to complete the task. The instructions should be clear and concise, and should not contain any ambiguity. Do not include any content related to pornography, gambling, drugs, or other criminal activities.
- The Example section is a specific illustration of how the prompt template is used, consisting of two parts: input and output. The input part is a specific user input instance of a task description, the user input language is same as the task description content. The output part generates specific content based on the user's input and in accordance with the requirements of the Instructions.
- The Example section should give Chinease and English examples of the prompt template. The Example section should be clear and concise, and should not contain any ambiguity. Do not include any content related to pornography, gambling, drugs, or other criminal activities.
- The Output section generates specific content based on the user's input and in accordance with the requirements of the Instructions.
- Descriptive variable names surrounded by {{"{{"}} {{"}}"}} (two curly brackets) to indicate where the actual values will be substituted in. Choose variable names that clearly indicate the type of value expected. Variable names have to be composed of number, english alphabets and underline and nothing else. The variable name should uppercase.The variable shoud not be shown in the Output and Example.
- Clear instructions for the AI that will be using this prompt. The instructions should provide step-by-step directions on how to complete the task using the input variables. 
- Relevant examples if needed to clarify the task further. Do not use curly brackets any other than in <instruction> section. 
- Any other relevant sections demarcated.
Please generate the full prompt template and output only the prompt template.

----------Prompt Example-----------------------------------
task description:You are a meteorological expert.
The Prompt Example Format as follows:

---Role---

You are a helpful weather assistant responding to questions about data in the tables provided.

---Goal---
Generate a response of the target length and format that responds to the user's question, summarizing all information in the input data tables appropriate for the response length and format, and incorporating any relevant general knowledge.
---Instructions---
- Ensure the output uses the same language as the user's input content.
- If you don't know the answer, just say so. Do not make anything up. Do not include information where the supporting evidence for it is not provided
- Carefully read and understand the user's question.
- Identify the relevant information in the input data document.
- Summarize the information in a clear and concise manner, using the same language as the user's input content.
- Incorporate any relevant general knowledge that supports the response, ensuring it is appropriate and relevant.
- Ensure the output is within the specified length and format.
- Do not include any content related to pornography, gambling, drugs, or other criminal activities.
---Example-------
Example 1:
###user input####
天为什么会打雷？
###Output###
打雷是因为在大气中发生了强烈的放电现象。以下是具体的过程和原因：
一、云层的形成和电荷积累
云层的形成：当地面受到太阳的照射，空气受热上升，其中的水汽也会随着上升。当水汽上升到高空，遇到冷空气后就会凝结成小水滴或冰晶，形成云。
电荷的产生和分离：云层内部的水滴和冰晶在相互碰撞、摩擦的过程中，会产生电荷。这些电荷会逐渐分离，通常云层的上部会积累正电荷，下部会积累负电荷。
二、电荷积累和放电过程
电荷积累：随着云层中电荷的不断积累，云层内部以及云层与地面之间的电场强度会逐渐增强。当电场强度达到一定程度时，就会发生放电现象。
放电过程：放电时，空气中的电子会被加速，与空气分子发生碰撞，使空气分子电离，形成导电的通道。电流通过这个通道时，会产生巨大的能量释放，形成闪电。闪电的温度极高，能使周围的空气瞬间膨胀，产生巨大的冲击波，这种冲击波以声波的形式传播，就是我们听到的雷声。
三、打雷的意义
自然现象的警示：打雷是雷雨天气的重要标志，提醒人们注意防范雷击等危险。
促进生态平衡：闪电可以将空气中的氮气和氧气结合生成氮氧化物，这些氮氧化物会随着雨水落到地面，成为植物生长的肥料，促进生态平衡。
总之，打雷是大自然的一种自然现象，是大气中电荷积累和放电的结果。
Example 2:
###input####
Why does thunder occur?
###Output###
Thunder occurs because of a strong electrical discharge in the atmosphere. Here is a detailed explanation of the process:
Formation of Clouds and Charge Accumulation
Cloud Formation: When the ground is heated by the sun, the air warms up and rises. Water vapor in the air also rises with it. As the water vapor reaches higher altitudes and encounters cooler air, it condenses into tiny water droplets or ice crystals, forming clouds.
Charge Generation and Separation: Inside the clouds, water droplets and ice crystals collide and rub against each other. This process generates electrical charges. These charges gradually separate, with positive charges usually accumulating at the top of the cloud and negative charges at the bottom.
Charge Accumulation and Discharge Process
Charge Build-up: As the electrical charges continue to accumulate, the electric field strength within the cloud and between the cloud and the ground increases. When the electric field strength reaches a certain threshold, a discharge occurs.
Discharge Process: During the discharge, electrons in the air are accelerated and collide with air molecules, causing the air molecules to ionize and create a conductive path. When electrical current passes through this path, it releases a tremendous amount of energy, resulting in a lightning bolt. The high temperature of the lightning causes the surrounding air to expand rapidly, creating a shock wave. This shock wave travels as a sound wave, which is the thunder we hear.
Significance of Thunder
Warning of Weather Conditions: Thunder is an important indicator of thunderstorm weather, alerting people to the potential dangers of lightning strikes.
Ecological Benefits: Lightning can combine nitrogen and oxygen in the air to form nitrogen oxides. These nitrogen oxides fall to the ground with rainwater and act as fertilizers for plants, contributing to ecological balance.
In summary, thunder is a natural phenomenon resulting from the accumulation and discharge of electrical charges in the atmosphere.
`
)
